package com.fau.cm.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.cm.entity.MedicalAdmin;
import com.fau.cm.entity.MedicalCallBlacklist;
import com.fau.cm.entity.MedicalCallCaller;
import com.fau.cm.entity.MedicalCallExhale;
import com.fau.cm.util.Page;

/**
 * @desc  电话管理接口
 * @author yangzj
 * @datetime 2014年10月14日,下午8:05:24
 */
public interface ITelManageService {
	
	/**
	 * @desc 保存黑名单设置
	 * @param blacklist 
	 * @author liy
	 * @datetime 2014年12月11日,下午8:01:55
	 */
	public void insertBlacklist(MedicalCallBlacklist blacklist);
	
	/**
	 * @desc 更新黑名单
	 * @param blacklist 
	 * @author liy
	 * @datetime 2014年12月11日,下午8:52:01
	 */
	public void updateBlacklist(MedicalCallBlacklist blacklist);
	
	/**
	 * @desc 删除黑名单设置
	 * @param blacklist 
	 * @author liy
	 * @datetime 2014年12月11日,下午8:31:33
	 */
	public void deleteBlacklist(MedicalCallBlacklist blacklist);
	
	/**
	 * @desc 分页查询黑名单
	 * @param blacklist 查询参数
	 * @param map 分页参数
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月11日,下午6:20:28
	 */
	public Page findBlacklistByPage(MedicalCallBlacklist blacklist, Map<String, Object> map);
	
	/**
	 * @desc 分页查询呼出电话明细
	 * @param exhale
	 * @param map 分页参数
	 * @return Page 分页工具类
	 * @author yangzj
	 * @datetime 2014年10月15日,上午10:42:26
	 */
	public Page findExhaleByPage(MedicalAdmin admin, MedicalCallExhale exhale, Map<String, Object> map);
	
	/**
	 * @desc 分页查询呼入电话明细
	 * @param caller
	 * @param map 分页参数
	 * @return Page 分页工具类
	 * @author yangzj
	 * @datetime 2014年10月15日,上午10:43:28
	 */
	public Page findCallerByPage(MedicalAdmin admin, MedicalCallCaller caller, Map<String, Object> map);
	
	/**
	 * @desc 导出全部来电明细信息
	 * @return Workbook
	 * @throws IOException
	 * @author yangzj
	 * @datetime 2014年10月15日,下午4:29:45
	 */
	public Workbook exportCaller(MedicalAdmin admin) throws Exception;
	
	/**
	 * @desc 导出全部呼出明细信息
	 * @return Workbook
	 * @throws IOException
	 * @author yangzj
	 * @datetime 2014年10月15日,下午4:29:59
	 */
	public Workbook exportExhale(MedicalAdmin admin) throws Exception;
	
	/**
	 * @desc 导出当前页来电明细信息
	 * @param ids
	 * @return Workbook
	 * @throws IOException
	 * @author yangzj
	 * @datetime 2014年10月15日,下午8:42:57
	 */
	public Workbook currentExportCaller(MedicalAdmin admin, String ids)throws Exception;
	
	/**
	 * @desc 导出当前页呼出明细信息
	 * @param ids
	 * @return Workbook
	 * @throws IOException
	 * @author yangzj
	 * @datetime 2014年10月15日,下午8:52:48
	 */
	public Workbook currentExportExhale(MedicalAdmin admin, String ids)throws Exception;
	
	/**
	 * @desc 话务管理-打开任务-查询通话记录
	 * @param customerId 客户id
	 * @param admin
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月15日,上午3:18:47
	 */
	public List<MedicalCallCaller> findCallRecords(String customerId, MedicalAdmin admin);
	
	/**
	 * @desc 分页查询去重来电信息
	 * @param callCaller
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月16日,上午12:24:37
	 */
	public Page fingCallCallerByPage(MedicalCallCaller callCaller,Map<String, Object> map);
	
	/**
	 * @desc 分页查询去重来电统计
	 * @param callCaller查询条件
	 * @param map 分页参数
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月16日,下午12:42:01
	 */
	public Page fingDuplicateCallCallerByPage(MedicalCallCaller callCaller,Map<String, Object> map);
	
	/**
	 * @desc 去重来电信息导出
	 * @param admin
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月16日,上午11:07:13
	 */
	public Workbook currentDuplicateExport(MedicalAdmin admin, MedicalCallCaller callCaller)throws Exception;
	
	/**
	 * @desc 去重来电统计导出
	 * @param admin
	 * @param callCaller
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月16日,下午6:44:23
	 */
	public Workbook duplicateStaExport(MedicalAdmin admin, MedicalCallCaller callCaller)throws Exception;
}
